home *** CD-ROM | disk | FTP | other *** search
- unit RegTPack; {Registers TPack components into TPack Pages}
-
- { 32 Components, 10 Forms = 42 Pieces, not counting types }
-
- { What I meant is that if this was chicken, you'd have paid $2.98 a piece;
- Since there is no free lunch, please decide early on to get the help and
- comments on these components and classes. I have to eat too.}
-
- interface
-
- uses
-
- {No Source}
- Xtension {Component Extensions and the low key Invoice Bugger.}
- ,Retry {*Logic to implement Retry used in TblCore and IniLink}
- ,DocProps {Read-only run-time object inspector}
-
- {Full Source Dialogs}
- ,About {Yawn}
- ,Working {NonModal form fakes modal by disabling other forms, offers stop}
- ,Splash {Library aware splash screen with pause/float timer}
- ,Debug {Trace window works at run and design time!}
- ,LoginDlg {Get password with component support}
- ,ErrorMsg {Report an error allowing retry/ignore optionally}
- ,Invoice {The real, but not the live nag-screen for your pleasure}
-
- {Full Source Components}
- ,PasUtils {Assorted Goodies that needed a home}
- ,ToolProc {Consolidates calls to proc that may be in dll's}
- ,TblRetry {Table with retry and pack}
- ,Bitbox {Access Bits in a Byte with links to database}
- ,UserInfo {Core Classes for Informational and Dialog Components}
- ,UserWin {Some Windows Statistics}
- ,UserBDE {Some BDE Statistics}
- ,UserNetW {Some Netware Info, including the ServerName}
- ,OkCore {OK/Go/Stop concept used for 'true' working message}
- ,IniLink {Example of how to go overboard with properties}
- ,Restorer {basic/specific 'restorers'. FormRestorer shows of link to ini files}
- ,Shells {Shells to DOS/Windows and DLL's!!}
- ,Toolbar {Miscelaneous panels with customized creators}
- ,TxtGrid {Nifty override to autosize columns}
- ,DebugCtl {Component to control the Trace Window}
- ,Resizer {Work in progress WinControl attaching resizer panel.}
-
- {Add WINDOS.DCU or .PAS to \DELPHI\LIB before uncommenting UserDOS}
- { also add WINDOS to UserDOS.PAS and uncomment some lines in its last proc}
- {The WINDOS.PAS shipped with this delphi was stored in \DELPHI\SOURCE\RTL\WIN}
-
- { ,UserDOS {Some DOS Statistics}
-
- ;
-
- {* no components, listed for completeness}
-
- {also required}
- { Demopack - shows off what's included}
- { RegTPack - this file}
-
- {of interest}
- { FiltProp - demonstrates how the object inspector gets its strings}
- { FormDos - show's what's on a form.}
-
-
-
- procedure Register;
-
- implementation
-
-
- {icons with help-file purchase}
-
- uses
- DsgnIntf, Classes;
-
-
- procedure Register;
- begin
-
- {The components are going to 2 pages,
- page one has mostly dialogs and info components,
- page two has mostly ui and shell components.}
-
- RegisterComponents('TPack1',
-
- {components to get and provide 'buffered' data.
- the idea here is that these components get the information they provide when they
- are loaded the store it efficiently for when it's needed.}
-
- [ TWindowsUserInfo {provides stored windows info and maps some functions}
- , TNetwareUserInfo {provides stored info about the session from the nw dll}
- , TBDEUserInfo {provides stored info from a bde info call}
-
- , TSplashScreen {the library smart splash screen. now with timers.}
-
- , TBitBox {access bits of words visually. multiple [snaking] columns}
- , TdbBitBox {bitbox linked to a live database field}
-
- {new in 1.1}
- , TIniFileLink {a three layer ini file user with extensive abstraction}
-
- {new in 2.0}
-
- {abstraction layer.
- we're registering the next three types so you can play around with the properties.
- all components (not controls) in here are descended from these.}
-
- , TComponentExtended {base type supporting automatic component linking/instantiating}
- , TUserInfo {base type for components updating on load}
- , TDialogShell {base type for form wrappers. need only override execute}
-
- {dialog shell descendents
- these are all dialogs of sorts but they are all called somewhat differently as their
- purposes also differ.}
-
- , TAboutBox {About my picture.. Well, there it is.}
- , TLoginDialog {Standard Password dialog with multiple extensions}
- , TWorkingMsg {Born 12/23/94, this is my solution to the 'cancel' problem}
- , TErrorDialog {An errordialog with BDE error decoder and button control}
- , TInvoice {Sample of the invoice and what you can do in 45 minutes}
-
-
- , TDebugControl {COOL when needed; A control for the Library aware trace window}
- ]);
-
-
- {OK. we got the basics out of the way. remember this code is free and that you are allowed
- to eliminate the nag-screen as long as you do not bill for work that is based on components
- you made from these. In no case must you disable the invoice when you use this code in a
- place of business other than your home office or for use other than personal. I figure that
- the money 'they' would spend on you doing that would equal or exceed the cost of the license
- never mind the lost benefit from the help file and missing code. Again, you must register
- as you use this for any business purpose. Thank You, I just had to make that clear.}
-
- {So, on page two we're going to throw out some more concepts..}
-
- RegisterComponents('TPack2',
-
- {TTable with retry is an innocent looking thing that I've made just for this upload. It's
- based in the idea that your user's don't care if a record or table is busy as long as they
- get a chance to retry or cancel their attempt. So Borland invented exceptions (Hey, i know
- it was not like that but I've resolved to say polymorphism only once in this package) and
- this table type uses them to let you automatically retry on open and edit. it also scans.}
-
- [ TTableWithRetry { Tacks a retry onto a table and uses it for open and edit}
- { TRetry is a non-source part of this package. see RETRY.INT}
-
-
- {These are the two ancestors of the TWorking Message above. I'm suggesting that while
- they are ancestors they are still viable components of their own. the OK idea in brief:
- OKAware - can return true to a process and do application.processmessages
- OK - can negotiate with a callback proc and call events when the state changes
- Working - can ask the OK to turn off. It uses a sep. form. the Ok can use buttons.}
-
- , TOkAware { Signal process on/off without support for user on/off}
- , TOk { User Control of process. Turn on/off using buttons on form}
-
-
- {I've seem so many different ways of doing restorers now, I had to try my hand at them and
- this is it so far.
-
- { , TGenericRestorer} { Generic Restorer hooks into form close, abstract load and save}
- , TFormRestorer { Concrete load and save for form. Minimal overhead, links to ini file.}
-
-
- {Same with shells. Here's my interpretation of a shell class.}
-
- , TGenericShell { Supports the link to a working message, messaging options, etc.}
- , TWindowsShell { One way of doing winexec. }
- , TDLLShell { that's compatible with calling procs from a dll.}
-
- { TDOS Info & Shell require WINDOS.PAS or DCU. See notes above}
-
- { , TDosShell} { Override WinExec and prefixes the commandline with DOS's comspec}
-
- { , TDosInfo} {not an info component per se, more of a function collection}
-
-
-
- , TReSizerPanel { A control attaching panel that let you resize one control aligned
- to each side of the screen (up to 4 sides) but not two next to each
- other. No promises, but I might distribute that once I figure it out.}
-
- , TToolButton { a toolbutton, slightly smaller.}
-
- , TToolBar { a slightly smaller bar attaching to the top}
-
- , TStatusBar { a Statusbar containing a Status and Message Panel}
- , TStatusPanel { Used for Hints. Self attaches to Application.OnHint}
- , TMessagePanel { Show Time/Date/Resource or Idles. Changes when clicked}
-
- , TEdRight { Needed for the Invoice, overrides create parameters to right align}
- , TTextGrid { Autosizes the columns of a string grid as 'FitCells' are set.}
- , TPropertyViewer { An imperfect but usable run-time property viewer. fun stuff.}
-
-
- {with help-file purchase}
-
- { , TDataSetReporter { arbitrary reports on datasources }
- { , TDataSetReporterPanel {page/group panels for the reporter}
- { , TSleep {non timer delay to the ms; tInterval uses a timer but does delays already.}
-
- ]);
-
- RegisterPropertyEditor(TypeInfo(TRetry),nil,'', TRetryProperty);
- RegisterPropertyEditor(TypeInfo(TInterval),nil,'', TIntervalProperty);
-
- end;
-
- end.
-